package cn.northsea.service;

import cn.northsea.pojo.*;

import java.util.List;

public interface ProductService {
    List<MaterialVo> findMaterialAll(String likename, String start, String end);

    List<ProductVo> findProductAll(String likename, String start, String end);

    List<ProductPlanVo> findProductPlanAll(String likename, String start, String end);

    List<MaterialProductVo> toFindMaterial(Integer productId, Integer productPlanId);

    List<GetMaterialVo> getMaterial(String likename, String start, String end);

    List<MaterialCategory> findMaterialCategoryAll();

    Material check(String materialName);

    void addMaterial(Material material);

    Material checkMaterialCategoryName(String materialCategoryName);

    void addMaterialCategory(MaterialCategory materialCategory);

    void delMaterial(Integer[] ids);

    Material findMaterialByMid(Integer materialId);

    void updateMaterial(Material material);

    List<ProductCategory> findProductCategoryAll();

    Product checkProductName(String productName);

    Product checkProductCategoryName(String productCategoryName);

    void addProduct(Product product);

    void addProductCategory(ProductCategory productCategory);

    void delProduct(Integer[] ids);

    Product findProductByPid(Integer productId);

    void updateProduct(Product product);

    List<Product> findProductList();

    void addProductPlan(ProductPlan productPlan);

    void delProductPlan(Integer productPlanId);

    ProductPlan findProductPlanById(Integer productPlanId);

    void updateProductPlan(ProductPlan productPlan);

    List<Material> findMaterialList();

    void addProductMaterial(MaterialProduct materialProduct);

    void delProductMaterial(Integer[] ids);

    MaterialProduct findProductMaterialById(Integer materialProductId);

    void toUpdateProductMaterial(MaterialProduct materialProduct);

    void certainMaterial(Integer getMaterialId);

    void certainProductMaterial(MaterialProduct materialProduct);

    String findGetMaterialQuantity(GetMaterial getMaterial, Integer quantity);

    String checkProduct(Integer productId, Integer productPlanId);

    void toProduct(Integer productPlanId);

    ProductPlan ProductPlanOver(Integer productPlanId);

    void getPid(Integer productPlanId);

    List<Warehouse> findWarehouseAll();

    void InWarehouse(WarehouseIn warehouseIn);

    void toAddGetMaterial(GetMaterial getMaterial);

}
